Polymorphic components for monomorphic languages
نویسندگان
چکیده
Most procedural programming languages, due to their restricted type systems, do not allow for polymorphic software components in the style of functional languages. Such polymorphism however greatly increases the potential for component reuse, while still guaranteeing the security of strong typing. In this paper, we show how to obtain polymorphic software components for “ordinary” languages like C or Modula-2. Our method is based on generic type inference in a software component library. The source of polymorphism is the use of free (undeclared) names in a component. The analysis algorithm will infer signature schemes, which are analoguous to type schemes in functional languages. Signature schemes can be used to check library consistency and allow to retrieve components by usage patterns.
منابع مشابه
Compiling with Types
This paper presents a program transformation, representation analysis, that makes it possible for languages with polymorphic types, such as ML, to use unboxed data representations in monomorphic code. The solution the paper presents involves the use of coercions to convert back and forth between unboxed representations used by monomorphic functions to the boxed representation used by polymorphi...
متن کاملSequelae of nonsustained polymorphic ventricular tachycardia induced during programmed ventricular stimulation.
The results of 206 programmed ventricular stimulation studies performed in 130 patients (100 men and 30 women, mean age 62 +/- 12 years, +/- standard deviation) were examined prospectively to determine the sequelae of nonsustained polymorphic ventricular tachycardia (VT) induced during programmed ventricular stimulation. The clinical indication for the electrophysiologic study was either docume...
متن کاملEffect of Long Period Cooling Storage on the Nucleic Acid of Harvested Cowpea Seeds (Vigna Sinensis L.) Treated by Gamma Irradiation and Micro Elements
The results could be summarized as follow: 1Primer OP-B01 gave 7 monomorphic and 13 polymorphic fragments (65%). 2The Primer OP-B02 and Primer OP-B05 gave 4 monomorphic fragments with 14 polymorphic fragments (79%). 3The Primer HA-98 gave 4 monomorphic fragments with 19 detected polymorphic 83%. 4The Primer HA-99 and HB-12 gave 3 monomorphic fragments and 17 polymorphic 85 and 86%, respectively...
متن کاملBidirectionalization for Free with Runtime Recording
A bidirectional transformation is a pair of mappings between source and view data objects, one in each direction. When the view is modified, the source is updated accordingly with respect to some laws. Over the years, a lot of effort has been made to offer better language support for programming such transformations. In particular, a technique known as bidirectionalization is able to analyze an...
متن کاملTranslation by Instantiation: Integrating Functional Features into an Imperative Language
In this paper, we present an imperative language enhanced with higher-order functions, function currying and a polymorphic type system. This enables high-level programming, as known from functional languages. On the other hand, this language can be eeciently implemented, by translating the functional features into constructs of the imperative base language. An instantiation procedure generates ...
متن کامل